Gestionar solicitudes CORS

Descripcion

Como gestionar solicitudes de dominio cruzados (CORS), ya sea desde el navegador o desde el servidor.

La cabecera que indica si se permiten solicitudes CORS en las cabeceras HTTP es la siguiente:

Access-Control-Allow-Origin

Para permitir acceso desde cualquier sitio usaríamos:

Access-Control-Allow-Origin: *
Gestionar CORS en el servidor

En esta web podemos ver como gestionar solicitudes CORS en varios servidores y con varios lenguajes: https://enable-cors.org

CORS en App Engine (google)

Para gestionar las solicitudes CORS en servidores implementados con App Engine lo hacemos con la siguiente linea de código, dentro de la función doGet:

response.addHeader("Access-Control-Allow-Origin", "*");

Siendo response un objeto tipo HttpServletResponse

En vez del asterisco (aceptar cualquiera solicitud) podemos indicar el dominio del que queramos aceptar solicitudes.

Deshabilitar CORS en Google Chrome

Para deshabilitar la politica CORS tenemos que ejecutar el google chrome desde la consola con el siguiente comando

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-web-security --user-data-dir="C:\ChromeNewConfig"

NOTA: En windows indicamos toda la ruta del ejecutable si fuese en linux podemos utilizar el comando google-chrome

Error

Desde la consola de desarrollador podemos ver mensajes como este cuando se produce una violacion de la politica CORS:

has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' is therefore not allowed access.
Tags

Chrome | CORS